import pandas as pd
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.express as px
import plotly.graph_objects as go
C:\Users\mehdi\AppData\Local\Temp\ipykernel_3324\4051237116.py:3: UserWarning:
The dash_core_components package is deprecated. Please replace
`import dash_core_components as dcc` with `from dash import dcc`
import dash_core_components as dcc
C:\Users\mehdi\AppData\Local\Temp\ipykernel_3324\4051237116.py:4: UserWarning:
The dash_html_components package is deprecated. Please replace
`import dash_html_components as html` with `from dash import html`
import dash_html_components as html
Research and Development#
Research and development (R&D) are crucial for driving innovation, creating high-quality jobs, and building a sustainable, low-carbon economy. Recognizing this, the provincial government has developed the StrongerBC plan, which sets out a vision for strengthening R&D in B.C.
df1 = pd.read_csv("~/strongerbc/data/research_and_development_1.csv")
df = df1[df1['Year'] >= 2000]
app = dash.Dash(__name__)
# Labels and Steps of Year Range
labels = {str(year): str(year) for year in range(df['Year'].min(), df['Year'].max() + 1 , 5)}
steps = {str(year): '' for year in range(df['Year'].min(), df['Year'].max() + 1)}
marks = {**steps, **labels}
app.layout = html.Div([
html.Div([
dcc.Graph(id='value-graph')
], style={'width': '100%', 'display': 'inline-block'}),
html.Div([
dcc.RangeSlider(
id='year-slider',
min=df['Year'].min(),
max=df['Year'].max(),
value=[df['Year'].min(), df['Year'].max()],
marks=marks,
step=None
),
dcc.Dropdown(
id='geo-dropdown',
options=[{'label': i, 'value': i} for i in df['GEO'].unique()],
value=df['GEO'].unique()[0]
),
dcc.Dropdown(
id='Funder-dropdown',
options=[{'label': i, 'value': i} for i in df['Funder'].unique()],
value=df['Funder'].unique()[0]
),
dcc.Dropdown(
id='Performer-dropdown',
options=[{'label': i, 'value': i} for i in df['Performer'].unique()],
value=df['Performer'].unique()[0]
),
dcc.Dropdown(
id='ScienceType-dropdown',
options=[{'label': i, 'value': i} for i in df['Science type'].unique()],
value=df['Science type'].unique()[0]
),
dcc.Dropdown(
id='Prices-dropdown',
options=[{'label': i, 'value': i} for i in df['Prices'].unique()],
value=df['Prices'].unique()[0]
)
], style={'width': '100%', 'display': 'inline-block'}),
])
@app.callback(
Output('value-graph', 'figure'),
[Input('year-slider', 'value'),
Input('geo-dropdown', 'value'),
Input('Funder-dropdown', 'value'),
Input('Performer-dropdown', 'value'),
Input('ScienceType-dropdown', 'value'),
Input('Prices-dropdown', 'value')],
)
def update_graph(year_range, geo_value, Funder_value, Performer_value, ScienceType_value, Prices_value):
dff = df[(df['Year'] >= year_range[0]) &
(df['Year'] <= year_range[1]) &
(df['GEO'] == geo_value) &
(df['Funder'] == Funder_value)&
(df['Performer'] == Performer_value) &
(df['Science type'] == ScienceType_value) &
(df['Prices'] == Prices_value)]
fig = px.line(dff, x="Year", y="VALUE", title='Investment in Innovation', template='plotly_white')
fig.update_traces(mode='markers+lines')
fig.update_yaxes(title_text=f'{Prices_value} (in millions $ )')
fig.update_layout(
title={
'text': "Trends in Innovation Investment",
'y':0.9,
'x':0.5,
'xanchor': 'center',
'yanchor': 'top'})
return fig
if __name__ == '__main__':
app.run_server(debug=True)
px.line(df1, x= 'Year', y = 'VALUE')